# ==========回调函数==========
# 函数(function)
# def function1():
#     print("001函数")
# def function2():
#     function1()
#     print("005函数")
# def function3(a):
#     a()
#     print("调用函数")
# 测试
# function1() #001函数
# function2() #001函数 005函数
# function3(function1)

# ==========迭代器==========
# 字符串,列表或元组都可以创建迭代器
# PS:
# list = [1,2,3,4]
# it = iter(list)
# print(it)
# 和下面这个一样
# list = [1,2,3,4]
# for i in list:
#     print(i,end=" ")

# ===========生成器===========
# 生成器（generator）
# 通过 next(generator) 这一方式，可以获得一系列值。
# def a():
#     b = 1
#     while True: #循环
#         yield b
#         b += 1
#         # 第一次返回1,第二次返回2,以此类推
# show = a() #将函数a()赋值给一个东西,再去打印
# print(f"第一次输出结果为: ",next(show))
# print(f"第二次输出结果为: ",next(show))
# print(f"第三次输出结果为: ",next(show))
# print(f"第四次输出结果为: ",next(show))

# ==========lambda表达式=========
# num = lambda a,b,c : a + b * c
# print(num(5,6,7))

# ==========装饰器==========
# 装饰器可以在不修改原始代码的情况下,为函数或类添加新的功能和行为,\
# 这使得Python语言具有了很大的灵活性和可扩展性

# ===========函数==========

# global
# num = 1
# def show()
# global num
# 在函数内调用全局函数

# nonlocal
# 在子函数里定义了一个主函数的变量,再下次调用的时候就可以继续往下走了
# 一个外函数中定义了一个内函数,内函数里运用了外函数的
# @装饰器 用法
# @function



